package leetcode;

/*
551. 学生出勤记录 I
给定一个字符串来代表一个学生的出勤记录，这个记录仅包含以下三个字符：
'A' : Absent，缺勤
'L' : Late，迟到
'P' : Present，到场
如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
*/

public class problems_551 {
    public static void main(String[] args) {
        System.out.println(new Solution().checkRecord("PPALLP"));
    }

    static class Solution {
        public boolean checkRecord(String s) {
            boolean isAbsent = false; // 是否已经缺勤过
            int numLate = 0; // 上一个是否是迟到
            for (int i = 0; i < s.length(); i++) {
                switch (s.charAt(i)){
                    case 'A': // 缺勤
                        if (!isAbsent) {
                            isAbsent = true;
                        }else {
                            return false;
                        }
                        numLate = 0;
                        break;
                    case 'L': // 迟到
                        numLate ++;
                        if(numLate > 2){
                            return false;
                        }
                        break;
                    case 'P': // 到场
                        numLate = 0;
                        break;
                }
            }
            return true;
        }
    }
}